package com.example.mylibrary.data;

import com.example.mylibrary.MyApp;
import com.example.mylibrary.greendao.ByteImgDao;
import com.example.mylibrary.greendao.ItemDao;
import com.example.mylibrary.greendao.StudentInfoDao;

import java.util.List;



/**
 * Created by Administrator on 2017/12/20.
 */

public class DataDao {

    //添加数据
    public static void insertInfo(StudentInfo studentInfo){
        MyApp.getDaoInstant().getStudentInfoDao().insertOrReplace(studentInfo);
    }
    //添加组别
    public static void insertsort(Sort sort){
        MyApp.getDaoInstant().getSortDao().insertOrReplace(sort);
    }
    //添加项目
    public static void insertitem(Item item){
        MyApp.getDaoInstant().getItemDao().insertOrReplace(item);
    }
    public static void insertitemGrop(ItemGrop itemGrop){
        MyApp.getDaoInstant().getItemGropDao().insertOrReplace(itemGrop);
    }
    public static void insertSchedule(Schedule schedule){
        MyApp.getDaoInstant().getScheduleDao().insertOrReplace(schedule);
    }
    //插入日期
    public static void insertSchedules(List<Schedule> schedules){
        MyApp.getDaoInstant().getScheduleDao().insertOrReplaceInTx(schedules);

    }
    //插入项目
    public static void insertItems(List<Item> items){
        MyApp.getDaoInstant().getItemDao().insertOrReplaceInTx(items);

    }
    //插入组别名称
    public static void insertISorts(List<Sort> sorts){
        MyApp.getDaoInstant().getSortDao().insertOrReplaceInTx(sorts);

    }
    //插入学生信息
    public static void insertStus(List<StudentInfo> studentInfos){
        MyApp.getDaoInstant().getStudentInfoDao().insertOrReplaceInTx(studentInfos);

    }
    public static void insertItemGrops(List<ItemGrop> itemGrops){
        MyApp.getDaoInstant().getItemGropDao().insertOrReplaceInTx(itemGrops);

    }

    //根据id删除数据
    public static void deleteInfo(long id){
        MyApp.getDaoInstant().getStudentInfoDao().deleteByKey(id);
    }

    //更新数据
    public static void updateInfo(StudentInfo studentInfo){
        MyApp.getDaoInstant().getStudentInfoDao().update(studentInfo);
    }
    //根据身份证查询信息
    public static List<StudentInfo> queryInfo(String idcard){
        return MyApp.getDaoInstant().getStudentInfoDao().queryBuilder().where(StudentInfoDao.Properties.IdCard.eq(idcard)).list();
    }
    //根据考号查询
    public static List<StudentInfo> queryStuCode(String studentCode){
        return MyApp.getDaoInstant().getStudentInfoDao().queryBuilder().where(StudentInfoDao.Properties.StudenCode.eq(studentCode)).list();

    }
    //考号查询照片
    public static  ByteImg  queryImg(String studentCode){
        return MyApp.getDaoInstant().getByteImgDao().queryBuilder().where(ByteImgDao.Properties.StudentCode.eq(studentCode)).unique();
    }
    public static  ByteImg  queryImgIdcard(String studentIdCard){
        return MyApp.getDaoInstant().getByteImgDao().queryBuilder().where(ByteImgDao.Properties.StudentCode.eq(studentIdCard)).unique();
    }
    public static List<ByteImg>  queryImgAll(){
        return MyApp.getDaoInstant().getByteImgDao().queryBuilder().list();
    }


    //查询所有
    public static List<StudentInfo>  queryAll(){
       return MyApp.getDaoInstant().getStudentInfoDao().queryBuilder().list();
    }
    //查询所有项目
    public static List<Item>  queryItemAll(){
        return MyApp.getDaoInstant().getItemDao().queryBuilder().list();
    }
    //查询所有组别
    public static List<Sort>  querySortsAll(){
        return MyApp.getDaoInstant().getSortDao().queryBuilder().list();
    }
    //查询时间 schedules
    public static List<Schedule>  querySchedulesAll(){
        return MyApp.getDaoInstant().getScheduleDao().queryBuilder().list();
    }

    //添加图片byte[]到数据库
    public static void insertImg(ByteImg byteImg){
         MyApp.getDaoInstant().getByteImgDao().insertOrReplace(byteImg);
    }

    //查询图片表
    public static List<ByteImg> imgAll(){
       return MyApp.getDaoInstant().getByteImgDao().queryBuilder().list();
    }
    //查询所有项目分组
    public  static   List<ItemGrop> itemGropAll(){
        return  MyApp.getDaoInstant().getItemGropDao().queryBuilder().list();
    }
    //查询所有学生项目
    public  static   List<StudentItem> stuItemAll(){
        return  MyApp.getDaoInstant().getStudentItemDao().queryBuilder().list();
    }

    //删除导入图片
    public static void deleteImg(){
        MyApp.getDaoInstant().getByteImgDao().deleteAll();
    }
    //删除数据
    public static   void deleteInfo(){
        MyApp.getDaoInstant().getStudentInfoDao().deleteAll();
    }
    //筛选日期
    public static List<StudentInfo> find(String startTime,String endTime){
        return  MyApp.getDaoInstant().getStudentInfoDao().queryBuilder().where(StudentInfoDao.Properties.FinalRollCalltime.between(startTime,endTime)).list();
    }

    //根据考号查询
    public static List<StudentInfo> queryStuId(String studentCode){
        return MyApp.getDaoInstant().getStudentInfoDao().queryBuilder().where(StudentInfoDao.Properties.StudenCode.eq(studentCode)).list();

    }
    public static List<Item> queryItemId(String itemName){
        return MyApp.getDaoInstant().getItemDao().queryBuilder().where(ItemDao.Properties.ItemName.eq(itemName)).list();

    }
    public static void insertStuItem(StudentItem studentItem){
        MyApp.getDaoInstant().getStudentItemDao().insertOrReplace(studentItem);
    }
    public static void insertStuGrop(StudentItemGrop studentItemGrop){
        MyApp.getDaoInstant().getStudentItemGropDao().insertOrReplace(studentItemGrop);
    }
    public static void insertStuGrops(List<StudentItemGrop> studentItemGrops){
        MyApp.getDaoInstant().getStudentItemGropDao().insertOrReplaceInTx(studentItemGrops);

    }

}
